Setup requirements
The degree to which it can be established in how far the test object complies with the requirements determines whether
a test environment is successful. The setup and composition of a test environment therefore depend on the aim of
the test. However, a series of generic requirements with which a test environment must comply to guarantee reliable
test execution can be formulated.
Representative
The test environment must have the properties (as much as possible) that are required for the planned test. This does
not mean that the entire test environment must always equal the production environment. For instance, for a functional
test of an interface between two applications you do not need a complete environment that matches the future production
environment.
Manageable
A manageable environment is required to test the test object under the same conditions every time. It must be clear at
all times which version is installed in a test environment. This applies not only to the test object, but also to all
of the software (i.e. the operating system, database management system, network protocols, etc). Changes in the
components of the test environment (hardware and software, test object, procedures, etc) cannot be implemented unless
with permission from the environment’s owner (in projects, often the test management).
Flexible
A test environment must be easy to adapt. This may conflict with the previous requirement. Which of the two
requirements (manageable or flexible) takes precedence, depends on the aim of the test and the phase of the test
process.
For instance, adjustments may be necessary when analysing defects or implementing a new version of the software. It may
also be necessary to create or eliminate specific connections with other systems. If this is done in a test environment
of one project, which has no impact on anybody else, flexibility wins. In case of a shared environment (e.g. an
end-to-end test environment), manageability is preferred. Other examples of possible changes are the system date and
time, currency, calculation units and regional settings. Adjusting the system date and time may be necessary to make
time jumps during testing. This is also called time travelling, making it possible for the system to be moved to the
past or the future. It can be used, for instance, to run a system cycle of one year in just half a day. Changing
regional settings is important when testing software that will be used in several countries.
Continuous
If there are disturbing situations in the test environment, one must try to continue testing as much as possible. The
consequences of a failure must therefore be limited to a minimum. An important mitigating measure is making regular
backups so that they can be restored if necessary. Furthermore, these secured initial situations can be used time and
again for the test or to investigate a specific defect. Another mitigating measure is to create a fallback option for
the test environment. The fallback option may consist of a second logical environment in addition to the existing test
environment. The risk is that, if problems occur in the hardware, they affect both environments. Another option is
therefore to set up a second physical environment. To limit the costs to some extent, the organisation may decide to
combine the second environment with the fallback facility for the production environment.
Factors determining the setup
Translating these requirements to the actual setup of a test environment varies for each test. For instance, the test
environment for testing the screens in the system test may be different from that for testing security during the
acceptance test. A large number of factors play a part in setting up the test environment. You will find a list of
determining factors, with a summary explanation, below.
-
The test level for which the environment is intended - unit, system or acceptance test or possibly a combined test.
-
The test type for which the environment is intended - performance, usability, security or regression test?
-
Requirements made by the external organisations for the environment, e.g. supervisors or (local or central)
authorities.
-
Requirements made for the test data to be used. Are they small or big volumes? What is the refresh rate?
-
Existing test environments in the organisation, if any. Can they be used?
-
How can individual requirements be implemented?
-
Is there a budget for setting up test environments and which options are available?
-
Does the organisation have standards for setting up test environments?
-
The hardware and software architecture. Which development or production platform is being used? What are the
options and which limitations exist, if any?
-
The manner in which system development is organised. The methods, techniques and phasing used for system
development have an impact on the test environments in terms of procedures.
-
The type of system. Clearly the test environment has a strong relationship with the nature of the test object, e.g.
batch, online, mainframe, PC application, custom or package.
-
The level of distributed processing. What extent of data communication exists? And in what form? Is the network or
network programming part of the test object? Are decentralised test sites used? Are there any interfaces with
external organisations?
-
Scope of the test. Should manual processes in e.g. input and output processing be tested as well?
-
The test environments of the programmer and tester must not be too distant in terms of geography. While
communication resources like telephone and e-mail may respond to part of the communication requirement, frequent
consultation between the various stakeholders will be necessary. An optimal location choice can save a lot of time
and money.
-
Sometimes the use of test tools makes demands on the test environment in relation to e.g. security, data storage
and communication resources.
|